.grid-stack {
  // Same options as in JS
  @gridstack-margin: 15px;
  @gridstack-width: 6;

  margin-right: -@gridstack-margin;

  .gridstack-columns(@column, @total) when (@column > 0) {
    @value: 100% * (@column / @total);
    > .grid-stack-item[data-gs-min-width="@{column}"] { min-width: @value }
    > .grid-stack-item[data-gs-max-width="@{column}"] { max-width: @value }
    > .grid-stack-item[data-gs-width="@{column}"] { width: @value }
    > .grid-stack-item[data-gs-x="@{column}"] { left: @value }

    .gridstack-columns((@column - 1), @total); // next iteration
  }

  .gridstack-columns(@gridstack-width, @gridstack-width);

  .grid-stack-item {
    .grid-stack-item-content {
      overflow: visible !important;
      box-shadow: none !important;
      opacity: 1 !important;
      left: 0 !important;
      right: @gridstack-margin !important;
    }

    .ui-resizable-handle {
      background: none !important;

      &.ui-resizable-w,
      &.ui-resizable-sw {
        left: 0 !important;
      }

      &.ui-resizable-e,
      &.ui-resizable-se {
        right: @gridstack-margin !important;
      }
    }

    &.grid-stack-placeholder > .placeholder-content {
      border: 0;
      background: rgba(0, 0, 0, 0.05);
      border-radius: 3px;
      left: 0 !important;
      right: @gridstack-margin !important;
    }
  }

  &.grid-stack-one-column-mode > .grid-stack-item {
    margin-bottom: @gridstack-margin !important;
  }
}
